Vengeance r2
A Quake Engine Project
by Entar
http://entar.quakedev.com
						
based on QMB	
by DrLabman


-----------------------------				
Overview						
-----------------------------

Vengeance r2 is the next revision of my old engine project Vengeance.
I call this engine Vengeance r2 because I've switched code bases. I'm now
using QMB, because it had a lot of features my older engine attempted (and failed)
to have (md3 models, png textures, etc) and my old engine had a lot features QMB had
(QMB particles, QMB shiny textures, QMB caustics, QMB detail textures, etc).  I am,
however, making many changes to improve on and make my engine competitive with QMB and
other engines.

-----------------------------
Contact Info
-----------------------------

Entar (entar99 AT hotmail DOT com)
http://entar.quakedev.com

-----------------------------
Copyright
-----------------------------

This program is distributed under the GNU GPL.
This material may be modified and distributed under GPL
with proper credit given to the creator.  Proprietary content from id
Software or other individuals is still protected under applicable law.

-----------------------------
Disclaimer
-----------------------------

I accept no responsibility if this file or program in any way causes influenza, 
causes sudden mood changes, or blows up your computer.
There is no warranty expressed or implied.

This project requires the registered version of Quake.  It can be found for 
under $12 in numerous places.  Support the developers who have put their 
effort into this game you love so much.

-----------------------------				
Features						
-----------------------------			

- Improved/Scriptable Particle system
- Lighting on smoke and blood particles
- Textured fire particles
- Half-Life BSP support
- Alternate hudstyle option
- Enhanced Tab Completion
- Bullet, explosion, lightning and misc decals
- Automatic Water Transparency
- Interpolated Lightstyles
- Underwater view warping
- New QC stuff
- Chase_active 2 (custom chase mode)
- Hardcoded Particle Textures
- New server cvars (sv_gamespeed, sv_freezenonclients, etc)
- Blood decals
- Texture filter system
- Texture script system (with -nofilters command line parameter)
- Model script system
- Light Blooms
- Motion blur
- Shadows from md3's
- Binoculars
- Additional developer support (dev_findradius cvar, qcexec <command> command, expanded r_speeds info)
- Idle gun movement
- New QC Particle Extensions
- Console Game
- Color/Brightness adjustment cvars
- New menu messages
- Cvarlist and Cmdlist commands
- Bug fixes
- Anything else I forgot I added

And anything QMB v1.18 had.

----------------------------
New CVARS
----------------------------

* v_hurtblur (0/1) - toggles
* v_gunmove - changes the speed of the idle gun movement (off if 0)
* hud (0/1/2/3/4) - toggles hud. O-3 changes how much of the hud shows up (0 = none, 3 = all); 4 toggles alternate full hud
* gl_bloom (0/1) - toggles light blooms
* gl_bloom_intensity (0-10) - adjusts intensity of light blooms (0 = off)
* r_part_lighting (0/1) - toggles lighting on particles
* sv_gamespeed (anywhere from 0.01 to 5) - changes speed of server
* v_color_red (anywhere from 0-4) - red setting on color adjustments
* v_color_green (anywhere from 0-4) - green setting on color adjustments
* v_color_blue (anywhere from 0-4) - blue setting on color adjustments
* v_color_percent (anywhere from 0-100) - power setting on color adjustments
* r_waterwarp (anywhere from 0-1) - changes amount of underwater screen warping (0 = off)
* dev_findradius (0/1) - toggles findradius indications (developer 1 mode only)
* chase_active (0/1/2) - chase_active 2 activates custom chasecam mode
  * chase_pitch (anywhere from -180 to 180) - changes camera angle[pitch]
  * chase_roll (anywhere from -180 to 180) - changes camera angle[roll]
  * chase_yaw (anywhree from -180 to 180) - camera angle[yaw], relative to player angle[yaw]
* r_decaltime (0-...) - adjusts how long decals stick around; 0 turns decals off.
  * r_decal_bullets (0/1) - toggles bullet decals
  * r_decal_misc (0/1) - toggles misc decals (wizard spike hits, etc)
  * r_decal_explosions (0/1) - toggles explosion decals
  * r_decal_blood (0/1) - toggles blood decals
* r_part_scripts (0/1) - toggles use of scripts on original TE_* effects
* sv_cheats (0/1) - toggles cheats on a server
* ed_printerrors (0/1) - toggles printing of edict errors on map load (useful for loading hlmaps)
* ed_printtextures (0/1) - toggles printing of all the textures used in a map

============================
New Extensions
============================
- TE_EXPLOSIONRGB (#53) - [vector] origin [byte] red [byte] green [byte] blue
- TE_PARTICLERAIN (#55) - [vector] min [vector] max [vector] dir [short] count [byte] color
- TE_GUNSHOTQUAD (#57) - just like a regular gunshot, only bigger and better
- TE_SPIKEQUAD (#58) - just like a regular spike hit, only better
- TE_SUPERSPIKEQUAD (#59) - just like a regular super spike hit, only better
- TE_EXPLOSIONQUAD (#70) - just like a regular explosion, only bigger
- TE_FLAMEJET (#74) - [vector] origin [vector] velocity [byte] count
- TE_PLASMABURN (#75) - just like a gunshot, but with a cool plasma-ish particle effect
- TE_VEN_WATERSPLASH (#125) - just like a gunshot; made for MauveBib's water splash qc code
- TE_VEN_EVENTSPLASH (#126) - use just like a gunshot; made for events like a flag capture or something
- TE_VEN_EXPLOSIONCUSTOM (#127) - [vector] origin [byte] red [byte] green [byte] blue [short] size

============================
Model Script system
============================
The model script system, at this point, has -5- flags.  They are rotateFlag,
noMD3shadowFlag, quadshellflag, fullbrightflag.  Here are some examples of use in the
venr2model.shader file:

rotateFlag=armo*,g_*; - this would make all models that have 'armo' or 'g_' in the 
name rotate.  This flag is there because md3's do not have the proper flags that mdl's do.

noMD3shadowflag=gib*; - this makes any model that has 'gib' in the name not cast a shadow.
This only applies to md3's at this point, because Vengeance r2 does not yet have alias
shadows on mdl models, only md3.

quadshellflag=quad*; - this makes any model that has 'quad' in the name get the shell
that shows up on weapons when you get a Quad damage.  This has an interesting
feature/artifact, however.  On models that animate or otherwise move, the shell fades
on and off.

fullbrightflag=flame*; - this should make any model that has 'flame' in the name be
theoretically unaffected by lighting from lightmaps.

fireflag=flame*; - this makes any model that has 'flame' in the name be on fire.

============================
Vr2 related links
============================
Wish/Todo List: http://entar.quakedev.com/todo.txt
Screenshot browsing: http://entar.quakedev.com/screenshots/

============================
Be aware of
============================
- Scriptable particle system
	Paramaters:
	  Set these paramaters to create your new particle effect.  Remember, you may call
	  more than one script section from the QC at a time.
		* type: what type of particle [p_fire, p_fire2, p_sparks, p_smoke, p_bubble, p_blood, p_chunks]
		* color0, color1, color2: red, green, blue color values (0-1)
		* size: size of the particles
		* time: how long the particle lasts
		* count: how many particles to spawn
		* decalsize: the size of the decal (no decal spawned if 0)
		* decalcolor0, decalcolor1, decalcolor2: red, green, blue, decal color values (0-1)
		* velocity0, velocity1, velocity2: x, y, z parameters for velocity (setting of 1, 1, 1 is zerodir)
		* gravity: gravity multiplier - 1 = normal gravity, 0 = no gravity, -1 = reverse gravity, etc
	Modifiers:
	  When using a modifier, set a decimal value (e.g. randtime=0.35) and the engine
	  will treat the decimal as a percent (35%), and do a randomize on the time value
	  (e.g. time=0.71, now time=random, anywhere between 0.4615 and 0.9585).
	  Exception: randcolor and randchangevel- just set to 1 for a random color/newvel.
		* randcolor: sets the particle(s) to a random color
		* randsize: sets the particle(s) to a random size around the size paramater.
		* randvel: gives the particle(s) a random velocity, around the velocity paramaters.
		* randtime: gives the particle(s) a random time until death, around the time paramater.
		* randchangevel: gives the particle(s) a random velocity.

- chase_active 2: custom chasecam mode (mostly for taking classy screenshots, or maybe making
a sidescroller?). chase_roll and chase_pitch only work in chase_active 2.

- Vengeance r2 is primarily made in/for a single player environment.  It does support
multiplayer as well as it can, however.  Just don't try +connect <server> in the console.

- BLOOMS: All bugs in the 4-28-05 beta are fixed.

- menu_server: If you enter 'menu_server' (minus the apostrophes) in the console, a small
server menu will appear.  The sliders don't move correctly, but the values will change
normally with left and right arrow keys.  ESC will put you in the options menu.

- console_game: Just type it in the console, and have fun.

- NoEmboss flag: this new texture flag will make the texture NOT have emboss filtering.
Used for exceptions of wildcards